package ilearning.mango.dao;

import ilearning.mango.bean.UserEntity;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

/**
 * @author Wang Xu
 * @date 2024/3/20
 */
public interface UserRepository extends MongoRepository<UserEntity, String> {
    // 如果条件关键词的限制导致开发不便，你可以考虑使用注解 @Query 来自定义查询语句。
    // 通过使用 @Query 注解，你可以直接在自定义查询方法上编写 MongoDB 查询语句，从而实现更灵活、复杂的查询逻辑。例如：
    UserEntity findByName(String name);

    // data mongo不支持@param方式，只能?0 1 2
    @Query("{'$or':[{'age': {'$gt': ?0}}, {'name': {$regex: ?1}}]}")
    List<UserEntity> findByNameOrAge(Integer age, String nameRegex);

}